package chpt03.shopping;

import java.util.ArrayList;

/**
 * 购物车类:可以用来存放商品，且包含购物车常用的操作方法。
 * 该类有待完善。未包含清空购物车、删除某件商品、修改某件商品的数量等方法。
 * 相较于ShopingCart，此类注释更规范
 */
public class ShoppingCart2 {
	private ArrayList<Commodity> items = new ArrayList<>();//存放商品的容器
	
	/**
	 * 往购物车里面存放商品。
	 * 该方法还不完善，未能将相同商品归为一项。你能修改完善吗？
	 * 怎么能获得某件商品的数量？
	 * @param item
	 */
	public void add(Commodity item) {
		items.add(item);
	}
	
	/**
	 * 获得购物车内商品的数量
	 * @return 购物车内商品的数量
	 */
	public int getQty() {
		return items.size();
	}
	
	/**
	 * 结算
	 * @return 返回购物车中所有商品的总价
	 */
	public double checkout() {
		double x = 0;
		for (Commodity commodity : items) {
			x += commodity.getPrice();
		}
		return x;
	}
	
	/**
	 * 显示购物车中的商品
	 */
	public void show() {
		for (Commodity commodity : items) {
			printCommodity(commodity);
			System.out.println();
		}
	}

	private void printCommodity(Commodity commodity) {
		System.out.printf("name: %s, price: %f", commodity.getName(), commodity.getPrice());
		
	}

}
